草庐IT

C++ 将 unsigned char append 到 wstring

全部标签

c++ - 如何将字符串文字传递给采用 const std::wstring& 的函数

我有一个采用conststd::wstring&font_family的函数,即FontFont::CreateFont(conststd::wstring&font_family){...}问题是我如何通过传递字符串文字(例如等宽)来调用该函数?我试过了CreateFont("monospace");CreateFont("std::wstring("monospace"));两者都不编译。谁有更好的主意?谢谢。 最佳答案 尝试:CreateFont(L"monospace");前导“L”指示编译器生成宽(wchar_t)字符串。

c++ - endl 不适用于 wstring (unicode)

代码如下:std::ofstreamf("file1.txt");f在(*1)的情况下有一个换行符,在(*2)和(*3)的情况下,我在file2.txt中看不到换行符。在(*3)中有一个换行符。我使用notepad.exe进行浏览。十六进制编辑器没有显示0x0D字节,只有0x0A。我应该如何正确地将换行符放入unicode文本文件中?谢谢。 最佳答案 这是预期的:std::endl将L'\n'写入宽字符流(并刷新它,但此处不相关),从不L"\r\n"。当编写文字L"\n"时,这一点更加明显。WriteFile不执行任何类型的换行符替

c++ - 在 Linux 中是否有将 wstring 或 wchar_t* 转换为 UTF-8 的内置函数?

我想将wstring转为UTF-8编码,但又想使用Linux自带的函数。在Linux中是否有任何内置函数可以通过简单调用将wstring或wchar_t*转换为UTF-8?例子:wstringstr=L"file_name.txt";wstringmode="a";fopen([FUNCTION](str),[FUNCTION](mode));//Simpleinvoke.cout 最佳答案 如果/当您的编译器支持足够的C++11时,您可以使用wstring_convert#include#include#includeintmai

c++ - std::wstring_convert 线程的成员函数是否安全?

我们正在使用一个std::wstring_convert>converter;在我们的记录器中,它从遗留组件获取UTF-16字符串并将其转换为我们写入日志的UTF-8。转换器在每次转换时都会被实例化,我们这样做autoutf8string=converter.to_bytes(utf16string);这是在我们代码的一个非常密集和多线程的部分中完成的,我想重新使用转换器的一个实例,但是看到std::wstring_convert暴露一个“状态”,我担心to_bytes不是线程安全的,我们可以通过重用同一个实例获得的任何yield都将因随后需要的过度锁定而丢失(在这种情况下,我无论如何

c++ - 在 C++ 中将 std::wstring 转换为 const *char

如何在C++中将std::wstring转换为const*char? 最佳答案 您可以使用c_str成员函数将std::wstring转换为constwchar_t*:std::wstringwStr;constwchar_t*str=wStr.c_str();然而,转换成constchar*并不自然:它需要额外调用std::wcstombs,例如:#include//...std::wstringwStr;constwchar_t*input=wStr.c_str();//Countrequiredbuffersize(pluso

c++ - 将 std::wstring 转换为 QString 会引发链接器错误

您好,我需要转换std::wstring至QString我尝试了最明显的方式std::wstringwideString;QStringqtString=QString::fromStdWString(wideString);我得到了错误:Error2errorLNK2019:unresolvedexternalsymbol"__declspec(dllimport)public:staticclassQString__cdeclQString::fromStdWString(classstd::basic_string,classstd::allocator>const&)"(__i

c++ - 将 std::wstring 转换为 int

我认为这很简单,但我无法让它工作。我只是想将std::wstring转换为int。到目前为止,我已经尝试了两种方法。第一种是使用带有“atoi”的“C”方法,如下所示:intConvertedInteger=atoi(OrigWString.c_str());但是,VC++2013告诉我:错误,“constwchar_t*”类型的参数与“constchar_t*”类型的参数不兼容所以我的第二种方法是使用这个,根据谷歌搜索:std::wistringstreamwin(L"10");intConvertedInteger;if(win>>ConvertedInteger&&win.eof

c++ - 检查 std::wstring 是 null 还是空

如何检查std::wstring是否为空或空? 最佳答案 wstring不是指针,它不能为空。您可以通过与前一个直接比较或通过:来检查它是否为空(即等同于"")str.empty();//==(str.size()==0) 关于c++-检查std::wstring是null还是空,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5373846/

c++ - 将 std::wstring 转换为 QString 的最佳方法

我目前正在做一个更大的项目,其中“逻辑”是用标准C++实现的,所有字符串都用std::wstring处理,UI部分是用Qt实现的,因此必然是QString(额外的问题:这是真的吗?)。连接这两个世界的最佳方式是什么?我知道我可以使用类似的东西std::wstringwideString;QStringqtString=QString::fromStdWString(wideString);但我想知道是否有更好的方法来减少打字。我想到了一个用户定义的运算符,但我没有足够的经验来独自解决这个问题。如果有人能指出我正确的方向,我会很高兴。 最佳答案

c++ - 比较 wstring 和忽略大小写

我敢肯定这之前会被问到但找不到。是否有任何内置方式(即使用std::wstring的方法或算法)对两个wstring对象进行不区分大小写的比较? 最佳答案 如果您不介意与Microsoft实现绑定(bind),您可以使用中定义的此功能。int_wcsnicmp(constwchar_t*string1,constwchar_t*string2,size_tcount);但是,如果您想要最佳的性能/兼容性/功能比,您可能必须查看boost库(无论如何,它的一部分是STL)。简单示例(取自differentanswer到不同的问题):#